//package cn.java75.util;
//
//import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
//import org.apache.ibatis.cache.Cache;
//import redis.clients.jedis.Jedis;
//import redis.clients.jedis.JedisPool;
//
//import java.util.UUID;
//import java.util.concurrent.locks.ReadWriteLock;
//import java.util.concurrent.locks.ReentrantReadWriteLock;
//
///**
// * @author oldliu
// * @since 1.0
// */
//public class RedisCache implements Cache {
//    private final ReadWriteLock readWriteLock = new ReentrantReadWriteLock();
//    private Jedis redisClient=createRedis();
//    private String id;
//    public RedisCache() {
//         this(UUID.randomUUID().toString());
//    }
//    public RedisCache(final String id) {
//        if (id == null) {
//            throw new IllegalArgumentException("Cache instances require an ID");
//        }
//        System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>MybatisRedisCache:id="+id);
//        this.id = id;
//    }
//    @Override
//    public String getId() {
//        return this.id;
//    }
//
//    @Override
//    public int getSize() {
//
//        return Integer.valueOf(redisClient.dbSize().toString());
//    }
//
//    @Override
//    public void putObject(Object key, Object value) {
//        System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>putObject:"+key+"="+value);
//
//        redisClient.set(SerializeUtil.serialize(key.toString()), SerializeUtil.serialize(value));
//    }
//
//    @Override
//    public Object getObject(Object key) {
//        Object value = SerializeUtil.unserialize(redisClient.get(SerializeUtil.serialize(key.toString())));
//        System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>getObject:"+key+"="+value);
//        return value;
//    }
//
//    @Override
//    public Object removeObject(Object key) {
//        return redisClient.expire(SerializeUtil.serialize(key.toString()),0);
//    }
//
//    @Override
//    public void clear() {
//        redisClient.flushDB();
//        redisClient.close();
//    }
//    @Override
//    public ReadWriteLock getReadWriteLock() {
//        return readWriteLock;
//    }
//    protected  static Jedis createRedis(){
//        ///JedisPool pool = new JedisPool( "127.0.0.1",6379);
//        GenericObjectPoolConfig g=new GenericObjectPoolConfig();
//
//        JedisPool pool = new JedisPool( new GenericObjectPoolConfig(),"127.0.0.1",6379);
//        Jedis j= pool.getResource();
//        j.auth("laoliu123");
//        //Jedis j= new Jedis("127.0.0.1",6379);
//        j.select(9);//选择哪个库
//
//        return j;
//    }
//}
